package com.developer.platform.domain.service;

import com.developer.platform.RedisConstant;
import com.developer.platform.domain.DictData;
import com.developer.platform.domain.DictType;
import com.veeker.redis.utils.RedisUtil;

/**
 * @author ：qiaoliang
 * @date ：2020-10-28
 */
public interface IDictService {
    /**
     * 新增字典类型
     *
     * @author ：qiaoliang
     * @param dictType : 字典类型
     * @date 2020-11-09 16:32
     */
    void saveType(DictType dictType);

    /**
     * 新增字典数据
     *
     * @author ：qiaoliang
     * @param dictData : 字典数据
     * @date 2020-11-09 16:32
     */
    void saveData(DictData dictData);

    /**
     *  修改字典类型
     *
     * @author ：qiaoliang
     * @param dictType : 字典类型
     * @date 2020-11-09 16:33
     */
    void updateType(DictType dictType);

    /**
     * 修改字典数据
     *
     * @author ：qiaoliang
     * @param dictData : 字典数据
     * @date 2020-11-09 16:32
     */
    void updateData(DictData dictData);

    /**
     * 删除字典类型
     *
     * @author ：qiaoliang
     * @param type : 字典类型
     * @date 2020-11-09 16:32
     */
    void deleteType(String type);

    /**
     * 删除字典数据
     *
     * @author ：qiaoliang
     * @param id : 字典数据ID
     * @date 2020-11-09 16:33
     */
    void deleteData(Long id);

    /**
     * 清空全局字典缓存
     *
     * @author ：qiaoliang
     * @date 2020-11-09 16:48
     */
    default void deleteData(){
        RedisUtil.delete(RedisConstant.DICT_ALL_KEYS);
    }

}
